/*
 *  Copyright 2011 yura.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */

package org.opu.vcforms.editor;

import java.beans.PropertyChangeListener;
import java.io.File;

/**
 * PropertyChangeListener work through delegation pattern
 * (but if it null, it still set saved to false);
 * @author yura
 */
public interface TextView extends PropertyChangeListener {

    public static final String SAVE = "save";
    public static final String EDIT = "edit";
    public static final String UNDO = "undo";
    public static final String REDO = "redo";

    public boolean isSaved();

    public void setSaved(boolean saved);

    public File getFile();

    public String getText();

    public void cut();

    public void copy();

    public void paste();

    public boolean undo();

    public boolean redo();

    public boolean canUndo();

    public boolean canRedo();

    public void setChangeListener(PropertyChangeListener changeListener);
}
